package com.ruoyi.common.DataConversion;

import com.ruoyi.common.domin.TypeConvertUtils;
import struct.StructClass;
import struct.StructField;

/**
 * @ClassName DownWriteParamPackage
 * @Description 下发写参数
 * @Author 张勇
 * @Date 2024-10-06
 * @Version 1.0.0.0
 **/
@StructClass
public class DownWriteParamPackage {
    /**
     * 唯一码
     */
    @StructField(order = 0)
    public byte[] uniqueCode = new byte[2];

    /**
     * 地址
     */
    @StructField(order = 1)
    public byte[] address=new byte[2];

    /**
     * 数据长度
     */
    @StructField(order = 2)
    public byte[] dataLength = new byte[2];

    /**
     * 写入的数据
     */
    @StructField(order = 3)
    public byte[] dataContent;

    /**
     * 设置唯一码
     * @param uniqueCode
     */
    public void setUniqueCode(String uniqueCode) {
        this.uniqueCode = TypeConvertUtils.stringToBytes(uniqueCode);
    }

    /**
     * 设置写入地址
     * @param address
     */
    public void setAddress(String address) {
        //将地址码补齐为4位，并且反转
        String addressReverse=TypeConvertUtils.polishAndReverse(address,4);
        this.address = TypeConvertUtils.stringToBytes(addressReverse);
    }

    /**
     * 设置数据内容
     * @param dataContent
     */
    public void setDataContent(String dataContent){
        this.dataContent=TypeConvertUtils.stringToBytes(dataContent);
    }

    /**
     * 设置数据内容 todo  字节数组形式
     * @param dataContent
     */
    public void setDataContent(byte[] dataContent){
        this.dataContent=dataContent;
    }

    /**
     * 设置数据长度
     */
    public void setDataLength(){
        this.dataLength=TypeConvertUtils.intToConverseBytes(dataContent.length,2);
    }

}
